package cn.caishen.report.domain.report;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 动态报表看板配置
 *
 * @author LB
 */
@TableName(value = "tb_report_chart")
@Data
@ApiModel(value = "动态报表看板配置")
public class ReportChart implements Serializable {

    /**
     * 动态报表看板配置编号
     */
    @TableId(value = "report_chart_id", type = IdType.AUTO)
    @ApiModelProperty("动态报表看板配置编号")
    private Integer reportChartId;

    /**
     * 动态报表配置编号
     */
    @TableField(value = "report_config_id")
    @ApiModelProperty("动态报表配置编号")
    private Integer reportConfigId;

    /**
     * 看板模块编号
     */
    @TableField(value = "module_id")
    @ApiModelProperty("看板模块编号")
    private Integer moduleId;

    /**
     * 图形类型(柱状=1,饼状=2,折线=3,排行=4)
     */
    @TableField(value = "chart_type")
    @ApiModelProperty("图形类型(柱状=1,饼状=2,折线=3,排行=4)")
    private Integer chartType;

    /**
     * 图形名称
     */
    @TableField(value = "chart_name")
    @ApiModelProperty("图形名称")
    private String chartName;

    /**
     * x轴字段
     */
    @TableField(value = "x_axis")
    @ApiModelProperty("x轴字段")
    private String xAxis;

    /**
     * x轴字段类型
     */
    @TableField(value = "x_field_type")
    @ApiModelProperty("x轴字段类型")
    private String xFieldType;

    /**
     * y轴字段
     */
    @TableField(value = "y_axis")
    @ApiModelProperty("y轴字段")
    private String yAxis;

    /**
     * y轴字段类型
     */
    @TableField(value = "y_field_type")
    @ApiModelProperty("y轴字段类型")
    private String yFieldType;

    /**
     * 分组（扩展使用，可能有多个看板）
     */
    /*@TableField(value = "page")
    @ApiModelProperty("分组（扩展使用，可能有多个看板）")
    private Integer page;*/

    /**
     * 看板是否带合计
     */
    @TableField(value = "need_total")
    @ApiModelProperty("看板是否带合计")
    private Integer needTotal;

    /**
     * 每个图形对应的模块编号
     */
    @TableField(value = "chart_module_id")
    @ApiModelProperty("每个图形对应的模块编号")
    private Integer chartModuleId;


    /**
     * 是否包含日期（用于前端判断）
     */
    @TableField(exist = false)
    @ApiModelProperty("是否包含日期（用于前端判断）")
    private Integer haveDate;

    /**
     * 图形中的日期字段（用于处理近7天，近30天这种）
     */
    @TableField(value = "date_field_name")
    @ApiModelProperty("图形中的日期字段（用于处理近7天，近30天这种）")
    private String dateFieldName;

    /**
     * 看板中的条件
     */
    @TableField(exist = false)
    @ApiModelProperty("看板中的条件")
    private List<ReportChartWhere> reportChartWhereList;

    /**
     * 宽度
     */
    /*@TableField(value = "width")
    @ApiModelProperty("宽度")
    private Integer width;*/

    /**
     * 高度
     */
    /*@TableField(value = "height")
    @ApiModelProperty("高度")
    private Integer height;*/
}
